package com.tinysand.advert.utils;

import com.tinysand.advert.exception.AdvertException;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.time.DateUtils;

import java.text.ParseException;
import java.util.Date;

/**
 * 通用工具类
 *
 * Created By TINY
 * Create Time 2020/2/21
 **/
public abstract class CommonUtils {

    /* 支持的日期格式 */
    private static String[] datePatterns = {
            "yyyy-MM-dd", "yyyy/MM/dd", "yyyy.MM.dd"
    };

    /**
     * 对传参md5编码并转为大写
     *
     * @param value 要加密的字符串
     * @return md5编码后的字符串
     */
    public static String md5(String value) {
        return DigestUtils.md5Hex(value).toUpperCase();
    }

    /**
     * 如果给定的日期字符串是支持的日期格式，将其转化为 Date
     * @param date 字符串日期
     * @return 转化后的日期
     */
    public static Date parseStringDate(String date) {
        try {
            return DateUtils.parseDate(date, datePatterns);
        } catch (ParseException e) {

            throw new AdvertException(e.getMessage());
        }
    }
}
